package com.class_;

import java.lang.reflect.Field;

public class Demo1 {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchFieldException {
        String classAllPath = "com.class_.Car";
        // 1、获取Class对象
        Class cls = Class.forName(classAllPath);
//        System.out.println(cls.getPackage().getName());  // 得到包名
//        System.out.println(cls.getName());  // 得到全类名
        // 2、通过反射创建对象
        Object o = cls.newInstance();

        // 通过反射得到brand属性
        Field brand = cls.getField("brand");
        System.out.println(brand.get(o));  // 通过反射读取属性：属性名.get(对象名)
        // 通过反射给属性赋值
        brand.set(o, "奥迪");
        System.out.println(brand.get(o));
        // 得到类的所有属性（字段）
        System.out.println("---------------");
        Field[] fields = cls.getFields();
        for (Field f : fields) {
            System.out.println(f.get(o));
        }
    }
}

